home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 March / PCWorld_2005-03_cd.bin / software / topware / sandra / san2005-1037-w64-sso.exe / {app} / examples / mySQL Schema.sql < prev    next >
Text File  |  2004-11-05  |  4KB  |  159 lines

  1.  
  2. #
  3. # mySQL 3.23+/4.0+ Schema for Sandra Report
  4. #
  5. # Database is assumed to have been created already.
  6. # No size settings included, please add as required.
  7. #
  8. # Copyright (c) 1995-2005, SiSoftware Ltd.
  9. # All Rights Reserved.
  10.  
  11. #
  12. # Kill all tables
  13. #
  14.  
  15. DROP TABLE TItem;
  16.  
  17. DROP TABLE TControl;
  18.  
  19. DROP TABLE TItemGroup;
  20.  
  21. DROP TABLE TDevice;
  22.  
  23. DROP TABLE TClass;
  24.  
  25. DROP TABLE TModule;
  26.  
  27. DROP TABLE TReport;
  28.  
  29. DROP TABLE TIDCount;
  30.  
  31. #
  32. # Create new tables
  33. #
  34.  
  35. CREATE TABLE TReport (
  36.     ID            INT PRIMARY KEY,
  37.     
  38.     ProgVersion        INT NOT NULL,
  39.     BuildVersion        INT NOT NULL,
  40.     Completed        BIT NOT NULL
  41. );
  42.  
  43. CREATE TABLE TModule (
  44.     ID            INT PRIMARY KEY,
  45.     ReportID        INT NOT NULL,
  46.     
  47.     Capabilities        INT NOT NULL,
  48.     Col1Percent        DOUBLE NOT NULL,
  49.     NotRegOK        BIT NOT NULL,
  50.     Name            VARCHAR(255) NOT NULL,
  51.     TypeID            INT NOT NULL,
  52.     HelpID            INT NOT NULL,
  53.  
  54.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES TReport(ID)
  55. );
  56.  
  57. CREATE TABLE TClass (
  58.     ID            INT PRIMARY KEY,
  59.     ModuleID        INT NOT NULL,
  60.     
  61.     Name            VARCHAR(255) NOT NULL,
  62.     IconID            INT NOT NULL,
  63.     HelpID            INT NOT NULL,
  64.  
  65.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  66. );
  67.  
  68. CREATE TABLE TDevice (
  69.     ID            INT PRIMARY KEY,
  70.     ModuleID        INT NOT NULL,
  71.     ClassID            INT,
  72.     
  73.     Name            VARCHAR(255) NOT NULL,
  74.     IconID            INT NOT NULL,
  75.     HelpID            INT NOT NULL,
  76.  
  77.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  78.     CONSTRAINT        cnstDCID FOREIGN KEY(ClassID) REFERENCES TClass(ID)
  79. );
  80.  
  81. CREATE TABLE TItemGroup (
  82.     ID            INT PRIMARY KEY,
  83.     ModuleID        INT NOT NULL,
  84.     ClassID            INT,
  85.     DeviceID        INT,
  86.     
  87.     Name            VARCHAR(255) NOT NULL,
  88.     IconID            INT NOT NULL,
  89.     HelpID            INT NOT NULL,
  90.  
  91.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  92.     CONSTRAINT        cnstGCID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  93.     CONSTRAINT        cnstGDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID)
  94. );
  95.  
  96. CREATE TABLE TItem (
  97.     ID            INT PRIMARY KEY,
  98.     ModuleID        INT NOT NULL,
  99.     ClassID            INT,
  100.     DeviceID        INT,
  101.     GroupID            INT,
  102.     
  103.     Name            VARCHAR(255) NOT NULL,
  104.     DataValue        VARCHAR(255),
  105.     IconID            INT NOT NULL,
  106.     TypeID            INT NOT NULL,
  107.     HelpID            INT NOT NULL,
  108.     
  109.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  110.     CONSTRAINT        cnstICID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  111.     CONSTRAINT        cnstIDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID),
  112.     CONSTRAINT        cnstIGID FOREIGN KEY(GroupID) REFERENCES TItemGroup(ID)
  113. );
  114.  
  115. CREATE TABLE TControl (
  116.     ID            INT PRIMARY KEY,
  117.     ModuleID        INT NOT NULL,
  118.     ClassID            INT,
  119.     DeviceID        INT,
  120.     
  121.     Name            INT NOT NULL,
  122.     DataValID        INT NOT NULL,
  123.     DataValue        VARCHAR(255),
  124.     
  125.     CONSTRAINT        cnstTMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  126.     CONSTRAINT        cnstTCID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  127.     CONSTRAINT        cnstTDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID)
  128. );
  129.  
  130. CREATE TABLE TIDCount (
  131.     TableName        VARCHAR(10) PRIMARY KEY,
  132.     CurrentID        INT NOT NULL
  133. );
  134.  
  135. #
  136. # Set-up keys/indexes
  137. #
  138.  
  139. CREATE INDEX ndxModuleName ON TModule (Name);
  140.  
  141. CREATE INDEX ndxCtrlName ON TControl (Name);
  142.  
  143. CREATE INDEX ndxGroupName ON TItemGroup (Name);
  144.  
  145. CREATE INDEX ndxItemName ON TItem (Name);
  146.  
  147. #
  148. # Inserts
  149. #
  150.  
  151. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  152. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TControl', 1);
  153. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  154. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  155. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  156. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  157. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  158.  
  159.